<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Coppelia Geometric Routines, Lua API</title>
<link rel="stylesheet" type="text/css" href="../../helpFiles/style.css">
</head>
<body><div align="center"><table class="allEncompassingTable"><tr><td>
<h1>Coppelia Geometric Routines<br>Lua API Reference</h1>
<p class="infoBox">All units, unless otherwise indicated, are specified in meters and radians. Note that mesh-, point cloud- and OC tree-handles mentioned in this reference have no direct relation with CoppeliaSim shape-, point cloud- and OC tree-handles: meshes, point cloud and octrees mentioned in this API reference are internal representations that are exclusively created, manipulated and destroyed with below API functions.<br>
Below API functions are a sub-set of their <a href="coppeliaGeometricRoutinesApi-alphabetic.htm">C++ API counterpart</a>.</p>

<h3 class="subsectionBar">
<a name="simGeom.copyMesh" id="simGeom.copyMesh"></a>simGeom.copyMesh</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Duplicates a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number meshCopyHandle=simGeom.copyMesh(number meshHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the mesh object to duplicate.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>meshCopyHandle</strong>: the copy of the mesh object in case of success.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createMesh">simGeom.createMesh</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.copyOctree" id="simGeom.copyOctree"></a>simGeom.copyOctree</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Duplicates an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number octreeCopyHandle=simGeom.copyOctree(number octreeHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the OC-tree object to duplicate.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>octreeCopyHandle</strong>: the handle of the duplicated OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.copyPtcloud" id="simGeom.copyPtcloud"></a>simGeom.copyPtcloud</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Duplicates a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number ptcloudCopyHandle=simGeom.copyPtcloud(number ptcloudHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the point-cloud object to duplicate.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>ptcloudCopyHandle</strong>: the handle of the duplicated point-cloud object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createMesh" id="simGeom.createMesh"></a>simGeom.createMesh</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number meshHandle=simGeom.createMesh(table vertices,table indices,table_3 meshOriginPos=nil,table_4 meshOriginQuat=nil,number triangleEdgeMaxLength=0.3,number maxTrianglesInBoundingBox=8)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>vertices</strong>: a table with the vertices of the mesh, expressed relative to the world origin.</div>
<div><strong>indices</strong>: a table with the indices of the mesh.</div>
<div><strong>meshOriginPos</strong>: the transformation frame position of the mesh. Can be omitted, in which case the frame of the mesh is located at the world origin.</div>
<div><strong>meshOriginQuat</strong>: the transformation frame quaternion of the mesh. Can be omitted, in which case the frame of the mesh is oriented as the world reference frame.</div>
<div><strong>triangleEdgeMaxLength</strong>: the maximum triangle size used internally for efficient calculations. A smaller size usually results in faster calculations, but larger calculation structures. Can be omitted.</div>
<div><strong>maxTrianglesInBoundingBox</strong>: the maximum number of triangles in leaf bounding boxes, used internally for efficient calculations. A smaller value usually results in faster calculations, but larger calculation structures. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>meshHandle</strong>: the handle to the mesh object in case of success.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.destroyMesh">simGeom.destroyMesh</a>, <a href="#simGeom.copyMesh">simGeom.copyMesh</a>, <a href="#simGeom.createMeshFromSerializationData">simGeom.createMeshFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createMeshFromSerializationData" id="simGeom.createMeshFromSerializationData"></a>simGeom.createMeshFromSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates a mesh object based on serialization data.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number meshHandle=simGeom.createMeshFromSerializationData(string serializationData)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>serializationData</strong>: the serialization data previously generated with <a href="#simGeom.getMeshSerializationData">simGeom.getMeshSerializationData</a>.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>meshHandle</strong>: the handle of the created mesh.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshSerializationData">simGeom.getMeshSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createOctreeFromColorPoints" id="simGeom.createOctreeFromColorPoints"></a>simGeom.createOctreeFromColorPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates an OC-tree object from several points with individual colors and individual user data.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number octreeHandle=simGeom.createOctreeFromColorPoints(table points,table_3 octreeOriginPos=nil,table_4 octreeOriginQuat=nil,number cellS=0.05,table rgbData=nil,table usrData=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>points</strong>: a table with point data, expressed relative to the world origin.</div>
<div><strong>octreeOriginPos</strong>: the transformation frame position of the OC-tree. Can be omitted, in which case the frame of the OC-tree is located at the world origin.</div>
<div><strong>octreeOriginQuat</strong>: the transformation frame quaternion of the OC-tree. Can be omitted, in which case the frame orientation of the OC-tree is same as the world origin.</div>
<div><strong>cellS</strong>: The desired OC-tree voxel size. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB colors (0-255)of the various points (i.e. one color per point). Can be omitted.</div>
<div><strong>usrData</strong>: the user data of the various points (i.e. one user data per point). Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>octreeHandle</strong>: the handle of the created OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromPoints">simGeom.createOctreeFromPoints</a>, <a href="#simGeom.createOctreeFromMesh">simGeom.createOctreeFromMesh</a>, <a href="#simGeom.createOctreeFromOctree">simGeom.createOctreeFromOctree</a>, <a href="#simGeom.destroyOctree">simGeom.destroyOctree</a>, <a href="#simGeom.copyOctree">simGeom.copyOctree</a>, <a href="#simGeom.createOctreeFromSerializationData">simGeom.createOctreeFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createOctreeFromMesh" id="simGeom.createOctreeFromMesh"></a>simGeom.createOctreeFromMesh</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates an OC-tree object from a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number octreeHandle=simGeom.createOctreeFromMesh(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 octreeOriginPos=nil,table_4 octreeOriginQuat=nil,number cellS=0.05,table_3 rgbData=nil,number usrData=0)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh object.</div>
<div><strong>meshQuat</strong>: the quaternion of the mesh object.</div>
<div><strong>octreeOriginPos</strong>: the transformation frame position of the OC-tree. Can be omitted, in which case the frame of the OC-tree is located at the world origin.</div>
<div><strong>octreeOriginQuat</strong>: the transformation frame quaternion of the OC-tree. Can be omitted, in which case the frame orientation of the OC-tree is same as the world origin.</div>
<div><strong>cellS</strong>: The desired OC-tree voxel size. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB color (0-255) of the generated voxels. Can be omitted.</div>
<div><strong>usrData</strong>: the user data of the generated voxels. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>octreeHandle</strong>: the handle of the created OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromPoints">simGeom.createOctreeFromPoints</a>,<a href="#simGeom.createOctreeFromColorPoints">simGeom.createOctreeFromColorPoints</a>, <a href="#simGeom.createOctreeFromOctree">simGeom.createOctreeFromOctree</a>, <a href="#simGeom.destroyOctree">simGeom.destroyOctree</a>, <a href="#simGeom.copyOctree">simGeom.copyOctree</a>, <a href="#simGeom.createOctreeFromSerializationData">simGeom.createOctreeFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createOctreeFromOctree" id="simGeom.createOctreeFromOctree"></a>simGeom.createOctreeFromOctree</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates an OC-tree object from another OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number newOctreeHandle=simGeom.createOctreeFromOctree(number octreeHandle,table_3 octreepos,table_4 octreeQuat,table_3 newOctreeOriginPos=nil,table_4 newOctreeOriginQuat=nil,number newOctreeCellS=0.05,table_3 rgbData=nil,number usrData=0)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle to the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree object.</div>
<div><strong>octreeQuat</strong>: the quaternion of the OC-tree object.</div>
<div><strong>newOctreeOriginPos</strong>: the transformation frame position of the new OC-tree. Can be omitted, in which case the frame of the new OC-tree is located at the world origin.</div>
<div><strong>newOctreeOriginQuat</strong>: the transformation frame quaternion of the new OC-tree. Can be omitted, in which case the frame orientation of the new OC-tree is same as the world origin.</div>
<div><strong>newOctreeCellS</strong>: The desired OC-tree voxel size. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB color (0-255) of the generated voxels. Can be omitted.</div>
<div><strong>usrData</strong>: the user data of the generated voxels. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>newOctreeHandle</strong>: the handle of the new OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromPoints">simGeom.createOctreeFromPoints</a>,<a href="#simGeom.createOctreeFromColorPoints">simGeom.createOctreeFromColorPoints</a>, <a href="#simGeom.createOctreeFromMesh">simGeom.createOctreeFromMesh</a>, <a href="#simGeom.destroyOctree">simGeom.destroyOctree</a>, <a href="#simGeom.copyOctree">simGeom.copyOctree</a>, <a href="#simGeom.createOctreeFromSerializationData">simGeom.createOctreeFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createOctreeFromPoints" id="simGeom.createOctreeFromPoints"></a>simGeom.createOctreeFromPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates an OC-tree object from several points.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number octreeHandle=simGeom.createOctreeFromPoints(table points,table_3 octreeOriginPos=nil,table_4 octreeOriginQuat=nil,number cellS=0.05,table rgbData=nil,number usrData=0)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>points</strong>: an table with point data, expressed relative to the world origin.</div>
<div><strong>octreeOriginPos</strong>: the transformation frame position of the OC-tree. Can be omitted, in which case the frame position of the OC-tree is located at the world origin.</div>
<div><strong>octreeOriginQuat</strong>: the transformation frame quaternion of the OC-tree. Can be omitted, in which case the frame orientation of the OC-tree is same as the world origin.</div>
<div><strong>cellS</strong>: The desired OC-tree voxel size. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB color (0-255) of the generated voxels. Can be omitted.</div>
<div><strong>usrData</strong>: the user data of the generated voxels. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>octreeHandle</strong>: the handle of the created OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromColorPoints">simGeom.createOctreeFromColorPoints</a>, <a href="#simGeom.createOctreeFromMesh">simGeom.createOctreeFromMesh</a>, <a href="#simGeom.createOctreeFromOctree">simGeom.createOctreeFromOctree</a>, <a href="#simGeom.destroyOctree">simGeom.destroyOctree</a>, <a href="#simGeom.copyOctree">simGeom.copyOctree</a>, <a href="#simGeom.createOctreeFromSerializationData">simGeom.createOctreeFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createOctreeFromSerializationData" id="simGeom.createOctreeFromSerializationData"></a>simGeom.createOctreeFromSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates an OC-tree object based on serialization data.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number octreeHandle=simGeom.createOctreeFromSerializationData(string serializationData)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>serializationData</strong>: the serialization data previously generated with <a href="#simGeom.getOctreeSerializationData">simGeom.getOctreeSerializationData</a>.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>octreeHandle</strong>: the handle to the created OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getOctreeSerializationData">simGeom.getOctreeSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createPtcloudFromColorPoints" id="simGeom.createPtcloudFromColorPoints"></a>simGeom.createPtcloudFromColorPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates a point-cloud object from several points with individual colors.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number ptcloudHandle=simGeom.createPtcloudFromColorPoints(table points,table_3 ptcloudOriginPos=nil,table_4 ptcloudOriginQuat=nil,number cellS=0.05,number maxPointCnt=20,table rgbData=nil,number proximityTol=0.005)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>points</strong>: a table with point data, expressed relative to the world origin.</div>
<div><strong>ptcloudOriginPos</strong>: the transformation frame position of the point-cloud. Can be omitted, in which case the frame of the point-cloud is located at the world origin.</div>
<div><strong>ptcloudOriginQuat</strong>: the transformation frame quaternion of the point-cloud. Can be omitted, in which case the frame orientation of the point-cloud is same as the world origin.</div>
<div><strong>cellS</strong>: The desired voxel size of the underlying OC-tree. Can be omitted.</div>
<div><strong>maxPointCnt</strong>: The maximum amount of points inside of a OC-tree voxel. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB color (0-255) of the generated points. Specify one color per point. Can be omitted.</div>
<div><strong>proximityTol</strong>: the distance tolerance to other points (i.e. point-point distances below the specified value are not permitted and points will be omitted). Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>ptcloudHandle</strong>: the handle to the created point-cloud object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createPtcloudFromPoints">simGeom.createPtcloudFromPoints</a>, <a href="#simGeom.destroyPtcloud">simGeom.destroyPtcloud</a>, <a href="#simGeom.copyPtcloud">simGeom.copyPtcloud</a>, <a href="#simGeom.createPtcloudFromSerializationData">simGeom.createPtcloudFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createPtcloudFromPoints" id="simGeom.createPtcloudFromPoints"></a>simGeom.createPtcloudFromPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates a point-cloud object from several points.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number ptcloudHandle=simGeom.createPtcloudFromPoints(table points,table_3 ptcloudOriginPos=nil,table_4 ptcloudOriginQuat=nil,number cellS=0.05,number maxPointCnt=20,table_3 rgbData=nil,number proximityTol=0.005)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>points</strong>: a table with point data, expressed relative to the world origin.</div>
<div><strong>ptcloudOriginPos</strong>: the transformation frame position of the point-cloud. Can be omitted, in which case the frame of the point-cloud is located at the world origin.</div>
<div><strong>ptcloudOriginQuat</strong>: the transformation frame quaternion of the point-cloud. Can be omitted, in which case the frame orientation of the point-cloud is same as the world origin.</div>
<div><strong>cellS</strong>: The desired voxel size of the underlying OC-tree. Can be omitted.</div>
<div><strong>maxPointCnt</strong>: The maximum amount of points inside of a OC-tree voxel. Can be omitted.</div>
<div><strong>rgbData</strong>: the RGB color (0-255) of the generated points. Can be omitted.</div>
<div><strong>proximityTol</strong>: the distance tolerance to other points (i.e. point-point distances below the specified value are not permitted and points will be omitted). Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>ptcloudHandle</strong>: the handle to the created point-cloud object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createPtcloudFromColorPoints">simGeom.createPtcloudFromColorPoints</a>, <a href="#simGeom.destroyPtcloud">simGeom.destroyPtcloud</a>, <a href="#simGeom.copyPtcloud">simGeom.copyPtcloud</a>, <a href="#simGeom.createPtcloudFromSerializationData">simGeom.createPtcloudFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.createPtcloudFromSerializationData" id="simGeom.createPtcloudFromSerializationData"></a>simGeom.createPtcloudFromSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Creates a point-cloud object based on serialization data.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number ptcloudHandle=simGeom.createPtcloudFromSerializationData(string serializationData)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>serializationData</strong>: the serialization data previously generated with <a href="#simGeom.getPtcloudSerializationData">simGeom.getPtcloudSerializationData</a>.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>ptcloudHandle</strong>: the handle of the created point-cloud.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getPtcloudSerializationData">simGeom.getPtcloudSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.destroyMesh" id="simGeom.destroyMesh"></a>simGeom.destroyMesh</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Destroys a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">simGeom.destroyMesh(number meshHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createMesh">simGeom.createMesh</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.destroyOctree" id="simGeom.destroyOctree"></a>simGeom.destroyOctree</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Destroys an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">simGeom.destroyOctree(number octreeHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromPoints">simGeom.createOctreeFromPoints</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.destroyPtcloud" id="simGeom.destroyPtcloud"></a>simGeom.destroyPtcloud</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Destroys a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn"> simGeom.destroyPtcloud(number ptcloudHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createPtcloudFromPoints">simGeom.createPtcloudFromPoints</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getBoxBoxDistance" id="simGeom.getBoxBoxDistance"></a>simGeom.getBoxBoxDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two cuboids.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 distSegPt1,table_3 distSegPt2=simGeom.getBoxBoxDistance(table_3 box1Pos,table_4 box1Quat,table_3 box1HalfSize,table_3 box2Pos,table_4 box2Quat,table_3 box2HalfSize,bool boxesAreSolid,bool altRoutine=false)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>box1Pos</strong>: the position of the first cuboid.</div> <div><strong>box1Quat</strong>: the quaternion of the first cuboid.</div>
<div><strong>box1HalfSize</strong>: the half-size of the first cuboid.</div>
<div><strong>box2Pos</strong>: the position of the second cuboid.</div> <div><strong>box2Quat</strong>: the quaternion of the second cuboid.</div>
<div><strong>box2HalfSize</strong>: the half-size of the second cuboid.</div>
<div><strong>boxesAreSolid</strong>: whether the two cuboids are solid. If true, then cuboid A being fully encompassed by cuboid B will always lead to a distance of zero between the two cuboids.</div>
<div><strong>altRoutine</strong>: if true, an alternative calculation routine will be used. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>distSegPt1</strong>: the minimum distance point on the first cuboid.</div>
<div><strong>distSegPt2</strong>: the minimum distance point on the second cuboid.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getBoxPointDistance" id="simGeom.getBoxPointDistance"></a>simGeom.getBoxPointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a cuboid and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 boxDistSegPt=simGeom.getBoxPointDistance(table_3 boxPos,table_3 boxQuat,table_3 boxHalfSize,bool boxIsSolid,table_3 point)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>boxPos</strong>: the position of the cuboid.</div> <div><strong>boxQuat</strong>: the quaternion of the cuboid.</div>
<div><strong>boxHalfSize</strong>: the half-size of the cuboid.</div>
<div><strong>boxIsSolid</strong>: whether the cuboid is solid. If true, then the point being fully encompassed by the cuboid will always lead to a distance of zero.</div>
<div><strong>point</strong>: position of the point.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>boxDistSegPt</strong>: the minimum distance point on the cuboid.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxBoxDistance">simGeom.getBoxBoxDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getBoxSegmentDistance" id="simGeom.getBoxSegmentDistance"></a>simGeom.getBoxSegmentDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a cuboid and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 boxDistSegPt,table_3 segmentSegPt=simGeom.getBoxSegmentDistance(table_3 boxPos,table_3 boxQuat,table_3 boxHalfSize,bool boxIsSolid,table_3 segmentEndPoint,table_3 segmentVector,bool altRoutine=false)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>boxPos</strong>: the position of the cuboid.</div> <div><strong>boxQuat</strong>: the quaternion of the cuboid.</div>
<div><strong>boxHalfSize</strong>: the half-size of the cuboid.</div>
<div><strong>boxIsSolid</strong>: whether the cuboid is solid. If true, then the segment being fully encompassed by the cuboid will always lead to a distance of zero.</div>
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>altRoutine</strong>: if true, an alternative calculation routine will be used. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>boxDistSegPt</strong>: the minimum distance point on the cuboid.</div>
<div><strong>segmentSegPt</strong>: the minimum distance point on the segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxBoxDistance">simGeom.getBoxBoxDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getBoxTriangleDistance" id="simGeom.getBoxTriangleDistance"></a>simGeom.getBoxTriangleDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a cuboid and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 boxDistSegPt,table_3 triangleDistSegPt=simGeom.getBoxTriangleDistance(table_3 boxPos,table_3 boxQuat,table_3 boxHalfSize,bool boxIsSolid,table_3 p,table_3 v,table_3 w,bool altRoutine=false)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>boxPos</strong>: the position of the cuboid.</div> <div><strong>boxQuat</strong>: the quaternion of the cuboid.</div>
<div><strong>boxHalfSize</strong>: the half-size of the cuboid.</div>
<div><strong>boxIsSolid</strong>: whether the cuboid is solid. If true, then the triangle being fully encompassed by the cuboid will always lead to a distance of zero.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>altRoutine</strong>: if true, an alternative calculation routine will be used. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>boxDistSegPt</strong>: the minimum distance point on the cuboid.</div>
<div><strong>triangleDistSegPt</strong>: the minimum distance point on the triangle.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getBoxBoxDistance">simGeom.getBoxBoxDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshMeshCollision" id="simGeom.getMeshMeshCollision"></a>simGeom.getMeshMeshCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between two mesh objects.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,table_2 caching,table intersections=simGeom.getMeshMeshCollision(number mesh1Handle,table_3 mesh1Pos,table_4 mesh1Quat,number mesh2Handle,table_3 mesh2Pos,table_4 mesh2Quat,table_2 caching=nil,bool returnIntersections=false)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>mesh1Handle</strong>: the handle of the first mesh object.</div>
<div><strong>mesh1Pos</strong>: the position of the first mesh object.</div>
<div><strong>mesh1Quat</strong>: the quaternion of the first mesh object.</div>
<div><strong>mesh2Handle</strong>: the handle of the second mesh object.</div>
<div><strong>mesh2Pos</strong>: the position of the second mesh object.</div>
<div><strong>mesh2Quat</strong>: the quaternion of the second mesh object.</div>
<div><strong>caching</strong>: a table with two values from previous collision checking between the same two entities, to speed-up calculations.</div>
<div><strong>returnIntersections</strong>: whether the interference segments should be computed and returned.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next collision checking between the same two entities (memorizes the colliding triangle in the two meshes).</div>
<div><strong>intersections</strong>: the interference segments.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getMeshTriangleCollision">simGeom.getMeshTriangleCollision</a>, <a href="#simGeom.getMeshSegmentCollision">simGeom.getMeshSegmentCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshMeshDistance" id="simGeom.getMeshMeshDistance"></a>simGeom.getMeshMeshDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two mesh objects.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 minDistSegPt1,table_3 minDistSegPt2,table_2 caching=simGeom.getMeshMeshDistance(number mesh1Handle,table_3 mesh1Pos,table_4 mesh1Quat,number mesh2Handle,table_3 mesh2Pos,table_4 mesh2Quat,number thresholdDist=nil,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>mesh1Handle</strong>: the handle of the first mesh object.</div>
<div><strong>mesh1Pos</strong>: the position of the first mesh.</div> <div><strong>mesh1Quat</strong>: the quaternion of the first mesh.</div>
<div><strong>mesh2Handle</strong>: the handle of the second mesh object.</div>
<div><strong>mesh2Pos</strong>: the position of the second mesh.</div> <div><strong>mesh2Quat</strong>: the quaternion of the second mesh.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>minDistSegPt1</strong>: the minimum distance point on the first mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>minDistSegPt2</strong>: the minimum distance point on the second mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshOctreeCollision" id="simGeom.getMeshOctreeCollision"></a>simGeom.getMeshOctreeCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between a mesh object and an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,table_2 caching=simGeom.getMeshOctreeCollision(number meshHandle,table_3 meshPos,table_4 meshQuat,number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>caching</strong>: a table with two values from previous collision checking between the same two entities, to speed-up calculations.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshCollision">simGeom.getMeshMeshCollision</a>, <a href="#simGeom.getMeshTriangleCollision">simGeom.getMeshTriangleCollision</a>, <a href="#simGeom.getMeshSegmentCollision">simGeom.getMeshSegmentCollision</a>, <a href="#simGeom.getOctreeOctreeCollision">simGeom.getOctreeOctreeCollision</a>, <a href="#simGeom.getOctreePtcloudCollision">simGeom.getOctreePtcloudCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a>, <a href="#simGeom.getOctreePointCollision">simGeom.getOctreePointCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshOctreeDistance" id="simGeom.getMeshOctreeDistance"></a>simGeom.getMeshOctreeDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a mesh object and an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 meshMinDistPt,table_3 ocMinDistPt,table_2 caching=simGeom.getMeshOctreeDistance(number meshHandle,table_3 meshPos,table_4 meshQuat,number octreeHandle,table_3 octreePos,table_4 octreeQuat,number thresholdDist=nil,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>meshMinDistPt</strong>: the minimum distance point on the mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>ocMinDistPt</strong>: the minimum distance point on the OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshDistance">simGeom.getMeshMeshDistance</a>, <a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeOctreeDistance">simGeom.getOctreeOctreeDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshPointDistance" id="simGeom.getMeshPointDistance"></a>simGeom.getMeshPointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a mesh object and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 meshMinDistPt,number caching=simGeom.getMeshPointDistance(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 point,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>point</strong>: the position of the point.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>meshMinDistPt</strong>: the minimum distance point on the mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshDistance">simGeom.getMeshMeshDistance</a>, <a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshPtcloudDistance" id="simGeom.getMeshPtcloudDistance"></a>simGeom.getMeshPtcloudDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a mesh object and a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 meshMinDistPt,table_3 pcMinDistPt,table_2 caching=simGeom.getMeshPtcloudDistance(number meshHandle,table_3 meshPos,table_4 meshQuat,number ptcloudHandle,table_3 pcPos,table_4 pcQuat,number thresholdDist=nil,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>pcPos</strong>: the position of the point-cloud.</div> <div><strong>pcQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>meshMinDistPt</strong>: the minimum distance point on the mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>pcMinDistPt</strong>: the minimum distance point on the point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshDistance">simGeom.getMeshMeshDistance</a>, <a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getPtcloudPtcloudDistance">simGeom.getPtcloudPtcloudDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshSegmentCollision" id="simGeom.getMeshSegmentCollision"></a>simGeom.getMeshSegmentCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between a mesh object and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching,table intersections=simGeom.getMeshSegmentCollision(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 segmentExtremity,table_3 segmentVector,number caching=-1,bool returnIntersections)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>segmentExtremity</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>caching</strong>: a values from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted or set to -1.</div>
<div><strong>returnIntersections</strong>: whether the interference segments should be returned. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
<div><strong>intersections</strong>: the interference segments which actually represent one or more segments with zero length.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshCollision">simGeom.getMeshMeshCollision</a>, <a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getMeshTriangleCollision">simGeom.getMeshTriangleCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshSegmentDistance" id="simGeom.getMeshSegmentDistance"></a>simGeom.getMeshSegmentDistance</h3>
<table class="apiTable">


<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a mesh object and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 meshMinDistPt,table_3 segmentDistSegPt,number caching=simGeom.getMeshSegmentDistance(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 segmentEndPoint,table_3 segmentVector,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>meshMinDistPt</strong>: the minimum distance point on the mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>segmentDistSegPt</strong>: the minimum distance point on the segment. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshDistance">simGeom.getMeshMeshDistance</a>, <a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshSerializationData" id="simGeom.getMeshSerializationData"></a>simGeom.getMeshSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Retrieves the serialization data from a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">string serializationData=simGeom.getMeshSerializationData(number meshHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>serializationData</strong>: the serialization data.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createMeshFromSerializationData">simGeom.createMeshFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshTriangleCollision" id="simGeom.getMeshTriangleCollision"></a>simGeom.getMeshTriangleCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between a mesh object and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching,table intersections=simGeom.getMeshTriangleCollision(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 p,table_3 v,table_3 w,number caching=-1,bool returnIntersections)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>caching</strong>: a values from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted or set to -1.</div>
<div><strong>returnIntersections</strong>: whether the interference segments should be returned. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
<div><strong>intersections</strong>: the interference segments.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshCollision">simGeom.getMeshMeshCollision</a>, <a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getMeshSegmentCollision">simGeom.getMeshSegmentCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getMeshTriangleDistance" id="simGeom.getMeshTriangleDistance"></a>simGeom.getMeshTriangleDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a mesh object and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 meshMinDistPt,table_3 triangleMinDistPt,number caching=simGeom.getMeshTriangleDistance(number meshHandle,table_3 meshPos,table_4 meshQuat,table_3 p,table_3 v,table_3 w,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>meshPos</strong>: the position of the mesh.</div> <div><strong>meshQuat</strong>: the quaternion of the mesh.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>meshMinDistPt</strong>: the minimum distance point on the mesh. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>triangleMinDistPt</strong>: the minimum distance point on the triangle. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshMeshDistance">simGeom.getMeshMeshDistance</a>, <a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeOctreeCollision" id="simGeom.getOctreeOctreeCollision"></a>simGeom.getOctreeOctreeCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between two OC-tree objects.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching=simGeom.getOctreeOctreeCollision(number oc1Handle,table_3 octree1Pos,table_4 octree1Quat,number oc2Handle,table_3 octree2Pos,table_4 octree2Quat,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>oc1Handle</strong>: handle of the first OC-tree object.</div>
<div><strong>octree1Pos</strong>: the position of the first OC-tree.</div> <div><strong>octree1Pos</strong>: the quaternion of the first OC-tree.</div>
<div><strong>oc2Handle</strong>: handle of the second OC-tree object.</div>
<div><strong>octree2Pos</strong>: the position of the second OC-tree.</div> <div><strong>octree2Pos</strong>: the quaternion of the second OC-tree.</div>
<div><strong>caching</strong>: a table with two values from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getOctreePtcloudCollision">simGeom.getOctreePtcloudCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a>, <a href="#simGeom.getOctreePointCollision">simGeom.getOctreePointCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeOctreeDistance" id="simGeom.getOctreeOctreeDistance"></a>simGeom.getOctreeOctreeDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two OC-tree objects.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 oc1MinDistPt,table_3 oc2MinDistPt,table_2 caching=simGeom.getOctreeOctreeDistance(number oc1Handle,table_3 octree1Pos,table_4 octree1Quat,number oc2Handle,table_3 octree2Pos,table_4 octree2Quat,number thresholdDist=nil,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>oc1Handle</strong>: the handle of the first OC-tree object.</div>
<div><strong>octree1Pos</strong>: the position of the first OC-tree.</div> <div><strong>octree1Pos</strong>: the quaternion of the first OC-tree.</div>
<div><strong>oc2Handle</strong>: the handle of the second OC-tree object.</div>
<div><strong>octree2Pos</strong>: the position of the second OC-tree.</div> <div><strong>octree2Pos</strong>: the quaternion of the second OC-tree.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>oc1MinDistPt</strong>: the minimum distance point on the first OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>oc2MinDistPt</strong>: the minimum distance point on the second OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreePointCollision" id="simGeom.getOctreePointCollision"></a>simGeom.getOctreePointCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between an OC-tree object and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching=simGeom.getOctreePointCollision(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 point,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>point</strong>: a point expressed relative to the world reference frame.</div>
<div><strong>caching</strong>: a value from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getOctreeOctreeCollision">simGeom.getOctreeOctreeCollision</a>, <a href="#simGeom.getOctreePtcloudCollision">simGeom.getOctreePtcloudCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreePointDistance" id="simGeom.getOctreePointDistance"></a>simGeom.getOctreePointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between an OC-tree object and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 ocMinDistPt,number caching=simGeom.getOctreePointDistance(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 point,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>point</strong>: the position of the point.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>ocMinDistPt</strong>: the minimum distance point on the OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeOctreeDistance">simGeom.getOctreeOctreeDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreePtcloudCollision" id="simGeom.getOctreePtcloudCollision"></a>simGeom.getOctreePtcloudCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between am OC-tree object and a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching=simGeom.getOctreePtcloudCollision(number octreeHandle,table_3 octreePos,table_4 octreeQuat,number ptcloudHandle,table_3 ptcloudPos,table_4 ptcloudQuat,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>ptcloudPos</strong>: the position of the point-cloud.</div> <div><strong>ptcloudQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>caching</strong>: a table with two values from previous collision checking between the same two entities, to speed-up collision checking..</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getOctreeOctreeCollision">simGeom.getOctreeOctreeCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a>, <a href="#simGeom.getOctreePointCollision">simGeom.getOctreePointCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreePtcloudDistance" id="simGeom.getOctreePtcloudDistance"></a>simGeom.getOctreePtcloudDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between an OC-tree object and a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 ocMinDistPt,table_3 pcMinDistPt,table_2 caching=simGeom.getOctreePtcloudDistance(number octreeHandle,table_3 octreePos,table_4 octreeQuat,number ptcloudHandle,table_3 pcPos,table_4 pcQuat,number thresholdDist=nil,table_2 caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>pcPos</strong>: the position of the point-cloud.</div> <div><strong>pcQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>ocMinDistPt</strong>: the minimum distance point on the OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>pcMinDistPt</strong>: the minimum distance point on the point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getOctreeOctreeDistance">simGeom.getOctreeOctreeDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudPtcloudDistance">simGeom.getPtcloudPtcloudDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeSegmentCollision" id="simGeom.getOctreeSegmentCollision"></a>simGeom.getOctreeSegmentCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between an OC-tree object and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching=simGeom.getOctreeSegmentCollision(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 segmentExtremity,table_3 segmentVector,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>segmentExtremity</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>caching</strong>: a value from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getMeshSegmentCollision">simGeom.getMeshSegmentCollision</a>, <a href="#simGeom.getOctreeOctreeCollision">simGeom.getOctreeOctreeCollision</a>, <a href="#simGeom.getOctreePtcloudCollision">simGeom.getOctreePtcloudCollision</a>, <a href="#simGeom.getOctreeTriangleCollision">simGeom.getOctreeTriangleCollision</a>, <a href="#simGeom.getOctreePointCollision">simGeom.getOctreePointCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeSegmentDistance" id="simGeom.getOctreeSegmentDistance"></a>simGeom.getOctreeSegmentDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between an OC-tree object and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 ocMinDistPt,table_3 segmentDistSegPt,number caching=simGeom.getOctreeSegmentDistance(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 segmentEndPoint,table_3 segmentVector,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>ocMinDistPt</strong>: the minimum distance point on the OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>segmentDistSegPt</strong>: the minimum distance point on the segment. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreeOctreeDistance">simGeom.getOctreeOctreeDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeSerializationData" id="simGeom.getOctreeSerializationData"></a>simGeom.getOctreeSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Retrieves the serialization data from an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">string serializationData=simGeom.getOctreeSerializationData(number octreeHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>serializationData</strong>: the serialization data.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createOctreeFromSerializationData">simGeom.createOctreeFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeTriangleCollision" id="simGeom.getOctreeTriangleCollision"></a>simGeom.getOctreeTriangleCollision</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Checks for collision between an OC-tree object and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">bool collisionResult,number caching=simGeom.getOctreeTriangleCollision(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 p,table_3 v,table_3 w,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>caching</strong>: a value from previous collision checking between the same two entities, to speed-up collision checking. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>collisionResult</strong>: the collision status.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next collision checking between the same two entities.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeCollision">simGeom.getMeshOctreeCollision</a>, <a href="#simGeom.getMeshTriangleCollision">simGeom.getMeshTriangleCollision</a>, <a href="#simGeom.getOctreeOctreeCollision">simGeom.getOctreeOctreeCollision</a>, <a href="#simGeom.getOctreePtcloudCollision">simGeom.getOctreePtcloudCollision</a>, <a href="#simGeom.getOctreeSegmentCollision">simGeom.getOctreeSegmentCollision</a>, <a href="#simGeom.getOctreePointCollision">simGeom.getOctreePointCollision</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeTriangleDistance" id="simGeom.getOctreeTriangleDistance"></a>simGeom.getOctreeTriangleDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between an OC-tree object and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 ocMinDistPt,table_3 triangleMinDistPt,number caching=simGeom.getOctreeTriangleDistance(number octreeHandle,table_3 octreePos,table_4 octreeQuat,table_3 p,table_3 v,table_3 w,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>octreePos</strong>: the position of the OC-tree.</div> <div><strong>octreeQuat</strong>: the quaternion of the OC-tree.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted or -1.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>ocMinDistPt</strong>: the minimum distance point on the OC-tree. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>triangleMinDistPt</strong>: the minimum distance point on the triangle. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshOctreeDistance">simGeom.getMeshOctreeDistance</a>, <a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getOctreeOctreeDistance">simGeom.getOctreeOctreeDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getOctreeVoxels" id="simGeom.getOctreeVoxels"></a>simGeom.getOctreeVoxels</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Retrieves voxel data from an OC-tree.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">table posData,table colorData,table userData=simGeom.getOctreeVoxels(number octreeHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>posData</strong>: position data: for each voxel, there are 3 position values (XYZ).</div>
<div><strong>colorData</strong>: color data: for each voxel, there are 3 color values (RGB, 0-1).</div>
<div><strong>userData</strong>: user data: for each voxel, there is one user data value.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudPointDistance" id="simGeom.getPtcloudPointDistance"></a>simGeom.getPtcloudPointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a point-cloud object and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 pcMinDistPt,number caching=simGeom.getPtcloudPointDistance(number ptcloudHandle,table_3 pcPos,table_4 pcQuat,table_3 point,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>pcPos</strong>: the position of the point-cloud.</div> <div><strong>pcQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>point</strong>: the position of the point.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>pcMinDistPt</strong>: the minimum distance point on the point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudPtcloudDistance">simGeom.getPtcloudPtcloudDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudPoints" id="simGeom.getPtcloudPoints"></a>simGeom.getPtcloudPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Retrieves point data from a point-cloud.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">table posData,table colorData=simGeom.getPtcloudPoints(number ptcloudHandle,number prop=1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>prop</strong>: the proportion of data to retrieve, on a voxel-basis. 1 retrieves all data, 0.25 retrieves 25% of the data.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>posData</strong>: the position data: for each point, there are 3 position values (XYZ).</div>
<div><strong>colorData</strong>: the color data: for each point, there are 3 color values (RGB, 0-1).</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudPtcloudDistance" id="simGeom.getPtcloudPtcloudDistance"></a>simGeom.getPtcloudPtcloudDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two point-cloud objects.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 pc1MinDistPt,table_3 pc2MinDistPt,table_2 caching=simGeom.getPtcloudPtcloudDistance(number pc1Handle,table_3 pc1pos,table_4 pc1Quat,number pc2Handle,table_3 pc2Pos,table_4 pc2Quat,number distanceThreshold=nil,table_2 caching)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>pc1Handle</strong>: the handle of the first point-cloud object.</div>
<div><strong>pc1Pos</strong>: the position of the first point-cloud.</div>
<div><strong>pc1Quat</strong>: the quaternion of the first point-cloud.</div>
<div><strong>pc2Handle</strong>: the handle of the second point-cloud object.</div>
<div><strong>pc2Pos</strong>: the position of the second point-cloud.</div>
<div><strong>pc2Quat</strong>: the quaternion of the second point-cloud.</div>
<div><strong>distanceThreshold</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a table with two values from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>pc1MinDistPt</strong>: the minimum distance point on the first point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>pc2MinDistPt</strong>: the minimum distance point on the second point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a table with two values that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudSegmentDistance" id="simGeom.getPtcloudSegmentDistance"></a>simGeom.getPtcloudSegmentDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a point-cloud and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 pcMinDistPt,table_3 segmentDistSegPt,number caching=simGeom.getPtcloudSegmentDistance(number ptcloudHandle,table_3 pcPos,table_4 pcQuat,table_3 segmentEndPoint,table_3 segmentVector,number thresholdDist=nil,number caching=-1)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>pcPos</strong>: the position of the point-cloud.</div> <div><strong>pcQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>pcMinDistPt</strong>: the minimum distance point on the point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>segmentDistSegPt</strong>: the minimum distance point on the segment. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudPtcloudDistance">simGeom.getPtcloudPtcloudDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudSerializationData" id="simGeom.getPtcloudSerializationData"></a>simGeom.getPtcloudSerializationData</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Retrieves the serialization data from a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">string serializationData=simGeom.getPtcloudSerializationData(number ptcloudHandle)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>serializationData</strong>: the serialization data.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.createPtcloudFromSerializationData">simGeom.createPtcloudFromSerializationData</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getPtcloudTriangleDistance" id="simGeom.getPtcloudTriangleDistance"></a>simGeom.getPtcloudTriangleDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a point-cloud object and a triangle.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 pcMinDistPt,table_3 triangleMinDistPt,number caching=simGeom.getPtcloudTriangleDistance(number ptcloudHandle,table_3 pcPos,table_4 pcQuat,table_3 p,table_3 v,table_3 w,number thresholdDist=nil,number caching=nil)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>pcPos</strong>: the position of the point-cloud.</div> <div><strong>pcQuat</strong>: the quaternion of the point-cloud.</div>
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>thresholdDist</strong>: the distance threshold. Can be omitted.</div>
<div><strong>caching</strong>: a value from previous distance calculation between the same two entities, to speed-up calculations. Can be omitted.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities, or if it is not smaller than the threshold distance, the threshold distance.</div>
<div><strong>pcMinDistPt</strong>: the minimum distance point on the point-cloud. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>triangleMinDistPt</strong>: the minimum distance point on the triangle. nil if the distance is not smaller than the threshold distance.</div>
<div><strong>caching</strong>: a value that can be used to speed-up next distance calculation between the same two entities. nil if the distance is not smaller than the threshold distance.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshPtcloudDistance">simGeom.getMeshPtcloudDistance</a>, <a href="#simGeom.getOctreePtcloudDistance">simGeom.getOctreePtcloudDistance</a>, <a href="#simGeom.getPtcloudPtcloudDistance">simGeom.getPtcloudPtcloudDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getSegmentPointDistance" id="simGeom.getSegmentPointDistance"></a>simGeom.getSegmentPointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a segment and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 segmentDistSegPt=simGeom.getSegmentPointDistance(table_3 segmentEndPoint,table_3 segmentVector,table_3 point)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
<div><strong>point</strong>: position of the point</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>segmentDistSegPt</strong>: the minimum distance point on the segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getSegmentSegmentDistance" id="simGeom.getSegmentSegmentDistance"></a>simGeom.getSegmentSegmentDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two segments.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 segment1DistSegPt,table_3 segment2DistSegPt=simGeom.getSegmentSegmentDistance(table_3 segment1EndPoint,table_3 segment1Vector,table_3 segment2EndPoint,table_3 segment2Vector)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>segment1EndPoint</strong>: position of point A on the first segment</div>
<div><strong>segment1Vector</strong>: vector stretching from point A to point B on the first segment.</div>
<div><strong>segment2EndPoint</strong>: position of point A on the second segment</div>
<div><strong>segment2Vector</strong>: vector stretching from point A to point B on the second segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>segment1DistSegPt</strong>: the minimum distance point on the first segment.</div>
<div><strong>segment2DistSegPt</strong>: the minimum distance point on the second segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getTransformedPoints" id="simGeom.getTransformedPoints"></a>simGeom.getTransformedPoints</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Transforms points via a transformation matrix, or via a position and a quaternion or Euler angles.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">
<div>1) table transformedPoints=simGeom.getTransformedPoints(table points,table_12 transformationMatrix)</div>
<div>2) table transformedPoints=simGeom.getTransformedPoints(table points,table_3 pos,table_4 quaternion)</div>
<div>2) table transformedPoints=simGeom.getTransformedPoints(table points,table_3 pos,table_3 eulerAngles)</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>points</strong>: the points to transform.</div>
<div><strong>transformationMatrix</strong>: a transformation matrix: 12 values (the last row of the 4x4 matrix (0,0,0,1) is not needed). The x-axis of the orientation component is (matrix[1],matrix[5],matrix[9]), the y-axis of the orientation component is (matrix[2],matrix[6],matrix[10]), the z-axis of the orientation component is (matrix[3],matrix[7],matrix[11]), and the translation component is (matrix[4],matrix[8],matrix[12]).</div>
<div><strong>pos</strong>: a position.</div>
<div><strong>quaternion</strong>: a quaternion.</div>
<div><strong>eulerAngles</strong>: Euler angles.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>transformedPoints</strong>: the transformed points.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr">
</td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getTrianglePointDistance" id="simGeom.getTrianglePointDistance"></a>simGeom.getTrianglePointDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a triangle and a point.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 triangleDistSegPt=simGeom.getTrianglePointDistance(table_3 p,table_3 v,table_3 w,table_3 point)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>point</strong>: position of the point</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>triangleDistSegPt</strong>: the minimum distance point on the triangle.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshPointDistance">simGeom.getMeshPointDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreePointDistance">simGeom.getOctreePointDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudPointDistance">simGeom.getPtcloudPointDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getBoxPointDistance">simGeom.getBoxPointDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getTriangleSegmentDistance" id="simGeom.getTriangleSegmentDistance"></a>simGeom.getTriangleSegmentDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between a triangle and a segment.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 triangleDistSegPt,table_3 segmentDistSegPt=simGeom.getTriangleSegmentDistance(table_3 p,table_3 v,table_3 w,table_3 segmentEndPoint,table_3 segmentVector)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>p</strong>: position of vertex A on the triangle.</div>
<div><strong>v</strong>: vector stretching from vertex A to vertex B on the triangle.</div>
<div><strong>w</strong>: vector stretching from vertex A to vertex C on the triangle.</div>
<div><strong>segmentEndPoint</strong>: position of vertex A on the segment.</div>
<div><strong>segmentVector</strong>: vector stretching from vertex A to vertex B on the segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>triangleDistSegPt</strong>: the minimum distance point on the triangle.</div>
<div><strong>segmentDistSegPt</strong>: the minimum distance point on the segment.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getMeshSegmentDistance">simGeom.getMeshSegmentDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getOctreeSegmentDistance">simGeom.getOctreeSegmentDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getPtcloudSegmentDistance">simGeom.getPtcloudSegmentDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getBoxSegmentDistance">simGeom.getBoxSegmentDistance</a>, <a href="#simGeom.getTriangleTriangleDistance">simGeom.getTriangleTriangleDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a>, <a href="#simGeom.getSegmentSegmentDistance">simGeom.getSegmentSegmentDistance</a>, <a href="#simGeom.getSegmentPointDistance">simGeom.getSegmentPointDistance</a></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.getTriangleTriangleDistance" id="simGeom.getTriangleTriangleDistance"></a>simGeom.getTriangleTriangleDistance</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Computes the minimum distance between two triangles.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">number distance,table_3 distSegPt1,table_3 distSegPt2=simGeom.getTriangleTriangleDistance(table_3 p1,table_3 v1,table_3 w1,table_3 p2,table_3 v2,table_3 w2)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>p1</strong>: position of point A on triangle 1.</div>
<div><strong>v1</strong>: vector stretching from point A to point B on triangle 1.</div>
<div><strong>w1</strong>: vector stretching from point A to point C on triangle 1.</div>
<div><strong>p2</strong>: position of point A on triangle 2.</div>
<div><strong>v2</strong>: vector stretching from point A to point B on triangle 2.</div>
<div><strong>w2</strong>: vector stretching from point A to point C on triangle 2.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet">
<div><strong>distance</strong>: the minimum distance between the two entities.</div>
<div><strong>triangle1DistSegPt</strong>: the minimum distance point on the first triangle.</div>
<div><strong>triangle2DistSegPt</strong>: the minimum distance point on the second triangle.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"><a href="#simGeom.getMeshTriangleDistance">simGeom.getMeshTriangleDistance</a>, <a href="#simGeom.getOctreeTriangleDistance">simGeom.getOctreeTriangleDistance</a>, <a href="#simGeom.getPtcloudTriangleDistance">simGeom.getPtcloudTriangleDistance</a>, <a href="#simGeom.getBoxTriangleDistance">simGeom.getBoxTriangleDistance</a>, <a href="#simGeom.getTriangleSegmentDistance">simGeom.getTriangleSegmentDistance</a>, <a href="#simGeom.getTrianglePointDistance">simGeom.getTrianglePointDistance</a></td>
</tr>
</table>
<br>


<h3 class="subsectionBar">
<a name="simGeom.scaleMesh" id="simGeom.scaleMesh"></a>simGeom.scaleMesh</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Scales a mesh object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">simGeom.scaleMesh(number meshHandle,number scalingFactor)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>meshHandle</strong>: the handle of the mesh object.</div>
<div><strong>scalingFactor</strong>: the scaling factor.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.scaleOctree" id="simGeom.scaleOctree"></a>simGeom.scaleOctree</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Scales an OC-tree object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn"> simGeom.scaleOctree(number octreeHandle,number scalingFactor)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>octreeHandle</strong>: the handle of the OC-tree object.</div>
<div><strong>scalingFactor</strong>: the scaling factor.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>

<h3 class="subsectionBar">
<a name="simGeom.scalePtcloud" id="simGeom.scalePtcloud"></a>simGeom.scalePtcloud</h3>
<table class="apiTable">
<tr class="apiTableTr">
<td class="apiTableLeftDescr">Description</td>
<td class="apiTableRightDescr">Scales a point-cloud object.</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLSyn">Synopsis</td>
<td class="apiTableRightLSyn">simGeom.scalePtcloud(number ptcloudHandle,number scalingFactor)</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLParam">Arguments</td>
<td class="apiTableRightLParam">
<div><strong>ptcloudHandle</strong>: the handle of the point-cloud object.</div>
<div><strong>scalingFactor</strong>: the scaling factor.</div>
</td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftLRet">Return value(s)</td>
<td class="apiTableRightLRet"></td>
</tr>
<tr class="apiTableTr">
<td class="apiTableLeftDescr">See also</td>
<td class="apiTableRightDescr"></td>
</tr>
</table>
<br>


<br>





</td></tr></table></div></body>
</html>
